Fixes #14,#15,#16,#17,#18,#21,#22,#23