some first logic