complete feature

Ready to merge.