updated with new working features