cleaning up interfaces and testing functionality