Finished basic functionality, no exception handling