cleaned up code, and have working methods for all