Refactored Down to 1.7 -- Now Android Compatible