generate source manually