OOP here i come
clean up