cleaned up first version