refactor samplings controller and model