one of the last features is nearly implemented