update for internal consistency
some first-principle classifiers implemented in numpy