#19 and #14 implemented