prototype interface