some new finished code