re-organized everthing