even more logic