big refactoring, use otto by square