Final cleanup, fully functional. Just need book texture @timewarp1 :3