Some design improvements. #37