FINISHED, almost  minor changes needed probably