Still got to work on error handling