working follow with cleaned up code