some small toolkit for programming