fucked up everything, but trying to make it more decoupled and android friendly, FML