refactor to make commands private and only expose execute and location methods