Convert procs to handler objects and reorganize gem layout