Total Rewrite. Old things will be added once optimized.