first version,
very crude dont use!