milestone 1 finished(need modifying)