write some framework