write some new codes