Finish #1.2, add #1.3, #1.5, #1.6