first draft. Still 1 day to clean it up