this is for private exercise