cleaned up methods and simplified approach