a little cleaned up, build not working yet.