cleaned up initialize