refactor to single options argument api, and allow support for both prototype and constructor mixins