add more logic