this should get us closer so cleaner implementation. Submitted by: Andrew P. Lentvorski <bsder@allcaps.org>