Basic support of #3 and #4