Initial Commit
finished but need to debug