changed a lot
merged changes