refactor; add CLI/STI