reorder methods
improve output