basic first version complete