got rid of channels. refactored every method to follow Go idioms