added init and tail