More work. Not exactly sure if everything works right or not.