Initial upload. Completed basic functionality