rearranged classes to me more susinct