fixed up return for consistency
refactored the method to be not so crap