Basically finished ver 1.0