Add some basic functionality and tests