Refactor of initial modules

Busted them up into smaller reusable pieces, so we didn't have
so much redundancy between android and non-android.

Also dumped them in their own folder.