broke down methods and interfaces