add more full init and tune method