add some tech logic