#5 and #16 implemented