addressed most of alberts comments
merged