code clean
use output layer, main client
comments
formal output layer