completed almost all features, refactored codes, added images