base interfaces