reorder methods
reduce fields visiblity