user logic added