diff --git a/tools/hcidump.c b/tools/hcidump.c
index 089d05c..7c05926 100644
--- a/tools/hcidump.c
+++ b/tools/hcidump.c
#include <sys/ioctl.h>
#include <sys/socket.h>
-#include <bluetooth/bluetooth.h>
-#include <bluetooth/hci.h>
-#include <bluetooth/hci_lib.h>
-
#include <arpa/inet.h>
-#include <netinet/in.h>
#include <netdb.h>
#include "parser.h"
#include "sdp.h"
-#define SNAP_LEN HCI_MAX_FRAME_SIZE
-#define DEFAULT_PORT "10839";
+#include "lib/hci.h"
+#include "lib/hci_lib.h"
+
+#define SNAP_LEN HCI_MAX_FRAME_SIZE
+#define DEFAULT_PORT "10839"
/* Modes */
enum {
diff --git a/tools/parser/att.c b/tools/parser/att.c
index d9cb335..4f24b6f 100644
--- a/tools/parser/att.c
+++ b/tools/parser/att.c
#include <stdlib.h>
#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-
#include "parser.h"
#define GATT_PRIM_SVC_UUID 0x2800
diff --git a/tools/parser/avctp.c b/tools/parser/avctp.c
index fc6f796..2da4c09 100644
--- a/tools/parser/avctp.c
+++ b/tools/parser/avctp.c
#include <stdlib.h>
#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-
#include "parser.h"
#include "sdp.h"
diff --git a/tools/parser/avdtp.c b/tools/parser/avdtp.c
index 6836058..5a2ee55 100644
--- a/tools/parser/avdtp.c
+++ b/tools/parser/avdtp.c
#include <stdlib.h>
#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-
#include "parser.h"
static char *si2str(uint8_t si)
diff --git a/tools/parser/avrcp.c b/tools/parser/avrcp.c
index f8e4443..df9da38 100644
--- a/tools/parser/avrcp.c
+++ b/tools/parser/avrcp.c
#include <string.h>
#include <ctype.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-
#include "parser.h"
/* ctype entries */
diff --git a/tools/parser/bnep.c b/tools/parser/bnep.c
index d9048a9..d9e958d 100644
--- a/tools/parser/bnep.c
+++ b/tools/parser/bnep.c
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
-#include <sys/types.h>
#include <net/ethernet.h>
diff --git a/tools/parser/bpa.c b/tools/parser/bpa.c
index 016f1bd..207397f 100644
--- a/tools/parser/bpa.c
+++ b/tools/parser/bpa.c
#include <stdlib.h>
#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-
-#include <bluetooth/bluetooth.h>
-#include <bluetooth/hci.h>
-
#include "parser.h"
#define BPA_U8(frm) (get_u8(frm))
diff --git a/tools/parser/capi.c b/tools/parser/capi.c
index f8cba3e..97abc4c 100644
--- a/tools/parser/capi.c
+++ b/tools/parser/capi.c
#include <stdlib.h>
#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-
-#include <bluetooth/bluetooth.h>
-
#include "parser.h"
#define CAPI_U8(frm) (get_u8(frm))
diff --git a/tools/parser/cmtp.c b/tools/parser/cmtp.c
index 7c4eb08..ac5cf84 100644
--- a/tools/parser/cmtp.c
+++ b/tools/parser/cmtp.c
#include <stdlib.h>
#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-
#include "parser.h"
#define TABLE_SIZE 10
diff --git a/tools/parser/csr.c b/tools/parser/csr.c
index 47954e2..1a63ae0 100644
--- a/tools/parser/csr.c
+++ b/tools/parser/csr.c
#include <stdlib.h>
#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-
#include "parser.h"
#define CSR_U8(frm) (get_u8(frm))
diff --git a/tools/parser/hci.c b/tools/parser/hci.c
index f41eec2..634dbc5 100644
--- a/tools/parser/hci.c
+++ b/tools/parser/hci.c
#include <stdlib.h>
#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-
-#include <bluetooth/bluetooth.h>
-#include <bluetooth/hci.h>
-#include <bluetooth/hci_lib.h>
-
#include "parser.h"
+#include "lib/hci.h"
+#include "lib/hci_lib.h"
static uint16_t manufacturer = DEFAULT_COMPID;
diff --git a/tools/parser/hcrp.c b/tools/parser/hcrp.c
index 45afc25..0a16a22 100644
--- a/tools/parser/hcrp.c
+++ b/tools/parser/hcrp.c
#include <stdlib.h>
#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-
#include "parser.h"
static char *pid2str(uint16_t pid)
diff --git a/tools/parser/hidp.c b/tools/parser/hidp.c
index 0d72f3e..6039eb9 100644
--- a/tools/parser/hidp.c
+++ b/tools/parser/hidp.c
#include <stdlib.h>
#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-
#include "parser.h"
static char *type2str(uint8_t head)
diff --git a/tools/parser/l2cap.c b/tools/parser/l2cap.c
index 65a9979..82b2e9b 100644
--- a/tools/parser/l2cap.c
+++ b/tools/parser/l2cap.c
#include <stdlib.h>
#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-
-#include <bluetooth/bluetooth.h>
-#include <bluetooth/hci.h>
-#include <bluetooth/l2cap.h>
-
#include "parser.h"
#include "sdp.h"
+#include "lib/hci.h"
+#include "lib/l2cap.h"
typedef struct {
uint16_t handle;
diff --git a/tools/parser/lmp.c b/tools/parser/lmp.c
index ed2ff5c..c303c1b 100644
--- a/tools/parser/lmp.c
+++ b/tools/parser/lmp.c
#include <ctype.h>
#include <sys/socket.h>
-#include <bluetooth/bluetooth.h>
-#include <bluetooth/hci.h>
-#include <bluetooth/hci_lib.h>
-
#include "parser.h"
+#include "lib/hci.h"
+#include "lib/hci_lib.h"
#define LMP_U8(frm) (get_u8(frm))
#define LMP_U16(frm) (btohs(htons(get_u16(frm))))
diff --git a/tools/parser/obex.c b/tools/parser/obex.c
index 9cc0828..66b7eff 100644
--- a/tools/parser/obex.c
+++ b/tools/parser/obex.c
#include <stdlib.h>
#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-
#include "parser.h"
static char *opcode2str(uint8_t opcode)
diff --git a/tools/parser/parser.c b/tools/parser/parser.c
index f91b63b..de8dbe8 100644
--- a/tools/parser/parser.c
+++ b/tools/parser/parser.c
#include <stdlib.h>
#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-
#include "parser.h"
#include "rfcomm.h"
diff --git a/tools/parser/parser.h b/tools/parser/parser.h
index cf40034..e975808 100644
--- a/tools/parser/parser.h
+++ b/tools/parser/parser.h
#include <time.h>
#include <sys/time.h>
-#include <bluetooth/bluetooth.h>
#include <netinet/in.h>
+#include "lib/bluetooth.h"
+
struct frame {
void *data;
uint32_t data_len;
extern struct parser_t parser;
-void init_parser(unsigned long flags, unsigned long filter,
+void init_parser(unsigned long flags, unsigned long filter,
unsigned short defpsm, unsigned short defcompid,
int pppdump_fd, int audio_fd);
diff --git a/tools/parser/ppp.c b/tools/parser/ppp.c
index 99165c4..947ca56 100644
--- a/tools/parser/ppp.c
+++ b/tools/parser/ppp.c
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
-#include <sys/types.h>
#include "parser.h"
diff --git a/tools/parser/rfcomm.c b/tools/parser/rfcomm.c
index 25e7ae1..f0e5325 100644
--- a/tools/parser/rfcomm.c
+++ b/tools/parser/rfcomm.c
#include <stdlib.h>
#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-
-#include <bluetooth/bluetooth.h>
-
#include "parser.h"
#include "rfcomm.h"
#include "sdp.h"
diff --git a/tools/parser/sdp.c b/tools/parser/sdp.c
index e3a65e3..b48e3ff 100644
--- a/tools/parser/sdp.c
+++ b/tools/parser/sdp.c
#include <stdlib.h>
#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-
#include "parser.h"
#include "sdp.h"
diff --git a/tools/parser/smp.c b/tools/parser/smp.c
index 4fa8dd1..c81b585 100644
--- a/tools/parser/smp.c
+++ b/tools/parser/smp.c
#include <stdlib.h>
#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-
#include "parser.h"
/* SMP command codes */
diff --git a/tools/parser/tcpip.c b/tools/parser/tcpip.c
index 9062008..6f2c3cb 100644
--- a/tools/parser/tcpip.c
+++ b/tools/parser/tcpip.c
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
-#include <sys/types.h>
#include <net/ethernet.h>
#include <netinet/in.h>