Proof of concept first version, garbage code quality.