implementing the base system