basiclly complete. Done some test experiment, successful.