Using API interfaces instead of implementation