added colon, and added error handling, untested