#2; #4; merge with master