cleaned up in preparation for more features