do not create a new prototype on every call