cleaned up. new starting point