testing an implementation of #2 and #3