this is only for the purposes of learning and testing