Add some basic definiations and implementations