required functionality