Listeners implemented, still needs some cleanup