added to #17, #18, #19