Semi implementation + improved docs