constructor, prototype separated