updated interfaces according to Alex's comments