Total rework of previous version

 * Not fully tested and not totally finished