first verion, functionality incomplete.