restructured with bower